import router from "@/router";
import { removeToken } from "@/utils/auth";
import { message } from "@/utils/message";
import axios from "axios";
import { mainUrl } from "./utils";

const http2 = axios.create({
  baseURL:mainUrl
    // 其他全局配置...
});

// 请求拦截器
http2.interceptors.request.use(
  config => {
    // 获取Token
    const token = localStorage.getItem("token");
    // 如果存在Token，且当前请求不是登录或注册请求，则在请求头中添加Token
    if (
      token &&
      !config.url.endsWith("/login") &&
      !config.url.endsWith("/register")
    ) {
      config.headers["Authorization"] = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);
// 添加响应拦截器
http2.interceptors.response.use(
  response => response, // 正常响应时直接返回
  error => {
    console.log('出现错误', error.response);
    if (error.response == undefined) {
      message("服务器错误，请稍后再试", { type: "error" });
     
    }
    const { status } = error.response;
    if (status === 401) {
      message("登录过期，请重新登录", { type: "error" });
      removeToken();
      localStorage.removeItem("token");
      window.location.reload();
    }
    // 其他错误处理（可选）
    return Promise.reject(error);
  }
);

export default http2;
